import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ButtonModule } from 'primeng/button';
import { CalendarModule } from 'primeng/calendar';
import { CheckboxModule } from 'primeng/checkbox';
import { ColorPickerModule } from 'primeng/colorpicker';
import { DropdownModule } from 'primeng/dropdown';
import { InputNumberModule } from 'primeng/inputnumber';
import { InputTextModule } from 'primeng/inputtext';
import { PanelModule } from 'primeng/panel';
import { ToolbarModule } from 'primeng/toolbar';
import { FormArrayComponent } from './form-array/form-array.component';
import { FormBuilderService } from './form-builder.service';
import { BooleanFormFieldComponent } from './form-field/boolean-form-field/boolean-form-field.component';
import { FormFieldComponent } from './form-field/form-field.component';
import { IntegerFormFieldComponent } from './form-field/integer-form-field/integer-form-field.component';
import { NumberFormFieldComponent } from './form-field/number-form-field/number-form-field.component';
import { StringFormFieldComponent } from './form-field/string-form-field/string-form-field.component';
import { FormGroupComponent } from './form-group/form-group.component';
import { FormItemComponent } from './form-item/form-item.component';
import { JsonSchemaService } from './json-schema.service';
import { PropertyGridComponent } from './property-grid/property-grid.component';
import { PropertyGroupComponent } from './property-group/property-group.component';


@NgModule({
  declarations: [
    PropertyGridComponent,
    PropertyGroupComponent,
    FormItemComponent,
    FormArrayComponent,
    FormFieldComponent,
    StringFormFieldComponent,
    BooleanFormFieldComponent,
    NumberFormFieldComponent,
    IntegerFormFieldComponent,
    FormGroupComponent
  ],
  imports: [
    CommonModule,
    ButtonModule,
    InputTextModule,
    InputNumberModule,
    CheckboxModule,
    CalendarModule,
    ToolbarModule,
    DropdownModule,
    ColorPickerModule,
    PanelModule,

    FormsModule,
    ReactiveFormsModule,
  ],
  exports: [
    FormGroupComponent,
  ],
  providers: [JsonSchemaService, FormBuilderService]
})
export class UtilsModule { }
